#include <iostream>
#include <array>
#include <vector>
#include <string>
#include <random>
#include <chrono>
#include <algorithm>
using namespace std;

mt19937 generator(time(0));
string charset = "abcdefghijklmnopqrstuvwxyz";

int randomInt(int min, int max)
{
  uniform_int_distribution<int> dist(min, max);
  return dist(generator);
}

int randomInt()
{
  return randomInt(1, 100);
}

float randomFloat()
{
  uniform_real_distribution<float> dist(0.0f, 10000.0f);
  return dist(generator);
}

double randomDouble()
{
  uniform_real_distribution<double> dist(0.0, 10000.0);
  return dist(generator);
}

long long randomLongLong()
{
  uniform_int_distribution<long long> dist(1000000000, 9999999999);
  return dist(generator);
}

string randomString()
{

  string result;
  for (int i = 0; i < 6; ++i)
  {
    result += charset[randomInt(0, 6)];
  }
  return result;
}

template <size_t size>
void generateArray()
{
  static array<int, size> intArr;
  static array<long long, size> longLongArr;
  static array<float, size> floatArr;
  static array<double, size> doubleArr;
  static array<string, size> stringArr;
  for (size_t i = 0; i < size; i++)
  {
    intArr[i] = randomInt();
    longLongArr[i] = randomLongLong();
    floatArr[i] = randomFloat();
    doubleArr[i] = randomDouble();
    stringArr[i] = randomString();
  }
}

void generateVector(size_t size)
{
  vector<int> intVec;
  vector<long long> longLongVec;
  vector<float> floatVec;
  vector<double> doubleVec;
  vector<string> stringVec;
  for (size_t i = 0; i < size; i++)
  {
    intVec.push_back(randomInt());
    longLongVec.push_back(randomLongLong());
    floatVec.push_back(randomFloat());
    doubleVec.push_back(randomDouble());
    stringVec.push_back(randomString());
  }
}

template <size_t size>
void generateBuiltinArray()
{
  static int intArr[size];
  static long long longLongArr[size];
  static float floatArr[size];
  static double doubleArr[size];
  static string stringArr[size];
  for (size_t i = 0; i < size; i++)
  {
    intArr[i] = randomInt();
    longLongArr[i] = randomLongLong();
    floatArr[i] = randomFloat();
    doubleArr[i] = randomDouble();
    stringArr[i] = randomString();
  }
}
template <typename T>
void printArray(T arr)
{
  for (const auto &elem : arr)
  {
    cout << elem << " ";
  }
  cout << endl;
}

int main()
{
  generateArray<10000>();
  generateArray<20000>();
  generateArray<30000>();
  generateArray<40000>();
  generateArray<50000>();
  generateVector(100000);
  generateVector(20000);
  generateVector(30000);
  generateVector(40000);
  generateVector(50000);
  generateBuiltinArray<10000>();
  generateBuiltinArray<10000>();
  generateBuiltinArray<10000>();
  generateBuiltinArray<10000>();
  generateBuiltinArray<10000>();

  return 0;
}